#pragma once
#ifndef _FUNCTIONS_H
#define _FUNCTIONS_H

#include "Defines.h"

#ifdef __cplusplus
extern "C" {
#else
#include <stdlib.h>
#endif

#ifndef LU_API
#define LU_API extern
#endif


	// Misc functions
	LU_API void						Print						( const char* message );
	LU_API void						Message						( const char* message, Colour col );
	LU_API void						MessagePlayer				( const char* message, Player player, Colour col );
	LU_API void						MessageAllExcept			( const char* message, Player player, Colour col );

	// Anything below this line is my own work
	LU_API void						GetBlipDisplayType			( Blip blip, int* displayType );
	LU_API void						SetBlipDisplayType			( Blip blip, int displayType );
	LU_API void						GetBlipColour				( Blip blip, Colour* colour );
	LU_API void						SetBlipColour				( Blip blip, Colour colour );
	LU_API void						GetBlipIcon					( Blip blip, int* sprite );
	LU_API void						SetBlipIcon					( Blip blip, int sprite );
	LU_API void						GetBlipID					( Blip blip, int* id );
	LU_API void						GetBlipOwner				( Blip blip, Player* player );
	LU_API void						GetBlipPos					( Blip blip, Vector3* pos );
	LU_API void						SetBlipPos					( Blip blip, Vector3* pos );
	LU_API void						GetBlipSize					( Blip blip, int* size );
	LU_API void						SetBlipSize					( Blip blip, int size );
	LU_API void						RemoveBlip					( Blip blip );
	LU_API void						CreateBlip					( int sprite, Vector3* pos, Blip* blipRet );
	LU_API void						CreateClientBlip			( Player player, int sprite, Vector3* pos, Blip* blipRet );
	LU_API void						FindBlip					( int id, Blip* blipRet );
	LU_API void						FindClientBlip				( int id, Player player, Blip* blipRet );
	LU_API void						GetBlipCount				( int* blipCount );
	LU_API void						GetClientBlipCount			( Player player, int* blipCount );
	LU_API void						FadeCamera					( Player player, float speed, int fadeIn, Colour col );
	LU_API void						GetCinematicBorder			( int* isEnabled );
	LU_API void						GetPlayerCinematicBorder	( Player player, int* isEnabled );
	LU_API void						RestoreCamera				( Player player );
	LU_API void						ShakeCamera					( Player player, int intensity );
	LU_API void						SetCameraMatrix				( Player player, Vector3* pos, Vector3* look, Vector3* rotation );
	LU_API void						SetCinematicBorder			( int enabled );
	LU_API void						SetPlayerCinematicBorder	( Player player, int enabled );
	LU_API void						GetFlyingCars				( int* isEnabled );
	LU_API void						GetPlayerFlyingCars			( Player plr, int* isEnabled );
	LU_API void						GetHandlingCheat			( int* isEnabled );
	LU_API void						GetPlayerHandlingCheat		( Player plr, int* isEnabled );
	LU_API void						SetFlyingCars				( int enabled );
	LU_API void						SetPlayerFlyingCars			( Player plr, int enabled );
	LU_API void						SetHandlingCheat			( int enabled );
	LU_API void						SetPlayerHandlingCheat		( Player plr, int enabled );

	LU_API void						CreateCheckpoint			( Vector3* pos, float radius, Colour col, Checkpoint* checkpointRet );
	LU_API void						CreateClientCheckpoint		( Vector3* pos, float radius, Colour col, Player plr, Checkpoint* checkpointRet );
	LU_API void						GetCheckpointColour			( Checkpoint checkpoint, Colour* col );
	LU_API void						SetCheckpointColour			( Checkpoint checkpoint, Colour col );
	LU_API void						GetCheckpointID				( Checkpoint checkpoint, int* id );
	LU_API void						GetCheckpointOwner			( Checkpoint checkpoint, Player* plr );
	LU_API void						GetCheckpointPos			( Checkpoint checkpoint, Vector3* posRet );
	LU_API void						SetCheckpointPos			( Checkpoint checkpoint, Vector3* pos );
	LU_API void						GetCheckpointRadius			( Checkpoint checkpoint, float* radiusRet );
	LU_API void						SetCheckpointRadius			( Checkpoint checkpoint, float radius );
	LU_API void						RemoveCheckpoint			( Checkpoint checkpoint );
	LU_API void						GetCheckpointType			( Checkpoint checkpoint, int* typeRet );
	LU_API void						SetCheckpointType			( Checkpoint checkpoint, int typeRet );
	LU_API void						GetObjectVirtualWorld		( Checkpoint checkpoint, int* worldRet );
	LU_API void						SetObjectVirtualWorld		( Checkpoint checkpoint, int world );
	LU_API void						FindCheckpoint				( int id, Checkpoint* checkpointRet );
	LU_API void						FindPlayerCheckpoint		( int id, Player player, Checkpoint* checkpointRet );
	LU_API void						GetCheckpointCount			( int* countRet );
	LU_API void						GetPlayerCheckpointCount	( Player player, int* checkpointRet );

	LU_API void						CreateExplosion				( Vector3* pos, int explosionType );
	LU_API void						CreateFire					( Vector3* pos, float radius );
	LU_API void						ExtinguishFire				( Vector3* pos, float radius );
	LU_API void						ExtinguishAllFires			( );

	LU_API void						CloseGarage					( int garage );
	LU_API void						CloseSSVBridge				( int delayed );
	LU_API void						EnableTrains				( int enabled );
	LU_API void						GetBoundariesLower			( Vector3* vectorRet );
	LU_API void						GetBoundariesUpper			( Vector3* vectorRet );
	LU_API void						GetFriendlyFire				( int* isEnabled );
	LU_API void						GetGamespeed				( float* speed );
	LU_API void						GetGravity					( float* gravity );
	LU_API void						GetHour						( int* hour );
	LU_API void						GetIslands					( int* islands );
	LU_API void						GetMinute					( int* minute );
	LU_API void						GetSSVBridgeLock			( int* isLocked );
	LU_API void						GetSSVBridgeUpdateTime		( int* updateTime );
	LU_API void						GetSurfaceTraction			( int surface, float* traction );
	LU_API void						GetTimeLock					( int* isLocked );
	LU_API void						GetWeather					( int* weather );
	LU_API void						GetWeatherLock				( int* isLocked );
	LU_API void						IsSSVBridgeUp				( int* isBridgeUp );
	LU_API void						OpenGarage					( int garage );
	LU_API void						OpenSSVBridge				( );
	LU_API void						SetBoundaries				( Vector3* upper, Vector3* lower );
	LU_API void						SetFriendlyFire				( int enabled );
	LU_API void						SetGamespeed				( float speed );
	LU_API void						SetGravity					( float gravity );
	LU_API void						SetIslands					( int islands );
	LU_API void						SetSSVBridgeLock			( int locked );
	LU_API void						SetSSVBridgeUpdateTime		( int timeInSecs );
	LU_API void						SetSurfaceTraction			( int surface, float value );
	LU_API void						SetTime						( int hour, int min );
	LU_API void						SetTimeLock					( int locked );
	LU_API void						SetWeather					( int weatherID );
	LU_API void						SetWeatherLock				( int locked );

	LU_API void						BigMessage					( const char* text, int timeInMS, int type );
	LU_API void						BigMessageForPlayer			( Player player, const char* text, int timeInMS, int type );
	LU_API void						ClearMessages				( );
	LU_API void						ClearMessagesForPlayer		( Player plr );
	LU_API void						PagerMessage				( const char* text, int speed, int unknown, int sound );
	LU_API void						PagerMessageForPlayer		( Player plr, const char* text, int speed, int unknown, int sound );
	LU_API void						SendPlayerMessage			( Player faking, Player recipient, const char* text );
	LU_API void						SmallMessage				( const char* text, int timeInMS, int type );
	LU_API void						SmallMessageForPlayer		( Player plr, const char* text, int timeInMS, int type );

	LU_API void						BanIP						( const char* IP );
	LU_API void						BanPlayer					( Player plr );
	LU_API void						GetBodyPartName				( int bodyPart );
	LU_API void						GetDistrictName				( float x, float y );
	LU_API void						KickPlayer					( Player plr );
	LU_API void						UnbanIP						( const char* IP );

	LU_API void						CreateObject				( int model, Vector3* pos );
	LU_API void						FindObject					( int id );
	LU_API void						GetObjectCount				( );
	LU_API void						GetObjectAngle				( Object object, Vector3* rot );
	LU_API void						SetObjectAngle				( Object object, Vector3* rot );
	LU_API void						GetObjectID					( Object object, int* idRet );
	LU_API void						GetObjectModel				( Object object, int* modelRet );
	LU_API void						MoveObjectTo				( Object object, Vector3* pos, float speed );
	LU_API void						GetObjectPos				( Object object, Vector3* pos );
	LU_API void						SetObjectPos				( Object object, Vector3* pos );
	LU_API void						RemoveObject				( Object object );
	LU_API void						RotateObjectTo				( Object object, Vector3* angle, float speed );
	LU_API void						StopObject					( Object object, int movement, int rotation );
	LU_API void						GetObjectVirtualWorld		( Object object, int* vWorld );
	LU_API void						SetObjectVirtualWorld		( Object object, int vWorld );

	LU_API void						CreatePickup				( int model, Vector3* vector, Pickup* pickupRet );
	LU_API void						FindPickup					( int id, Pickup* pickupRet );
	LU_API void						GetPickupCount				( int* countRet );
	LU_API void						GetPickupID					( Pickup pickup, int* idRet );
	LU_API void						GetPickupInstantRespawn		( Pickup pickup, int* isTrue );
	LU_API void						SetPickupInstantRespawn		( Pickup pickup, int isTrue );
	LU_API void						GetPickupModel				( Pickup pickup, int* idRet );
	LU_API void						GetPickupOneTime			( Pickup pickup, int* isOneTime );
	LU_API void						SetPickupOneTime			( Pickup pickup, int isOneTime );
	LU_API void						GetPickupPos				( Pickup pickup, Vector3* posRet );
	LU_API void						SetPickupPos				( Pickup pickup, Vector3* pos );
	LU_API void						RemovePickup				( Pickup pickup );
	LU_API void						RespawnPickup				( Pickup pickup );

	LU_API void						FindPlayer					( int id, Player* playerRet );
	LU_API void						FindPlayerByName			( const char * name, Player* playerRet );
	LU_API void						GetClosestPlayer			( Player player, Player* playerRet );
	LU_API void						GetPlayerAlpha				( Player player, int* alphaRet );
	LU_API void						SetPlayerAlpha				( Player player, int alpha );
	LU_API void						GetPlayerAngle				( Player player, float* angleRet );
	LU_API void						SetPlayerAngle				( Player player, float angle );
	LU_API void						GetPlayerArmour				( Player player, int* armourRet );
	LU_API void						SetPlayerArmour				( Player player, int armour );
	LU_API void						GetPlayerCash				( Player player, int* cashRet );
	LU_API void						SetPlayerCash				( Player player, int cash );
	LU_API void						GetPlayerClass				( Player player, int* classRet );
	LU_API void						SetPlayerClass				( Player player, int classId );
	LU_API void						ClearPlayerWeapons			( Player player );
	LU_API void						GetPlayerColour				( Player player, int* colourRet );
	LU_API void						SetPlayerColour				( Player player, int colour );
	LU_API void						GetPlayerColouredName		( Player player, char * colouredName );
	LU_API void						SetPlayerColouredName		( Player player, char * colouredName );
	LU_API void						ForcePlayerEnterVehicle		( Player player, Vehicle vehicle, int door );
	LU_API void						ForcePlayerExitVehicle		( Player player );
	LU_API void						ForcePlayerSpawnScreen		( Player player );
	LU_API void						GetPlayerFrozen				( Player player, int* ret );
	LU_API void						FreezePlayer				( Player player );
	LU_API void						UnfreezePlayer				( Player player );
	LU_API void						GetPlayerLowerBoundaries	( Player player, Vector3* posRet );
	LU_API void						GetPlayerUpperBoundaries	( Player player, Vector3* posRet );
	LU_API void						GetPlayerIgnoringPlayer		( Player player, Player ignorance, int* ignoring );
	LU_API void						GetPlayerHealth				( Player player, float* healthRet );
	LU_API void						SetPlayerHealth				( Player player, float health );
	LU_API void						GetPlayerID					( Player player, int* idRet );
	LU_API void						GetPlayerIP					( Player player, char * ipAddress );
	LU_API void						GetPlayerImmune				( Player player, int* isImmune );
	LU_API void						SetPlayerImmune				( Player player, int immune );
	LU_API void						GetPlayerIsland				( Player player, int* islandRet );
	LU_API void						GetPlayerMarker				( Player player, int* isVisible );
	LU_API void						SetPlayerMarker				( Player player, int visible );
	LU_API void						GetPlayerMuted				( Player player, int* isMuted );
	LU_API void						SetPlayerMuted				( Player player, int muted );
	LU_API void						GetPlayerName				( Player player, char * name );
	LU_API void						GetPlayerNametag			( Player player, int* isVisible );
	LU_API void						SetPlayerNametag			( Player player, int visible );
	LU_API void						GetPlayerPing				( Player player, int* ping );
	LU_API void						GetPlayerPos				( Player player, Vector3* pos );
	LU_API void						SetPlayerPos				( Player player, Vector3* pos );
	LU_API void						RemovePlayerFromVehicle		( Player player );
	LU_API void						RemovePlayerLimb			( Player player, int limb );
	LU_API void						SetPlayerScore				( Player player, int score );
	LU_API void						GetPlayerScore				( Player player, int* score );
	LU_API void						SetPlayerAnim				( Player player, int anim );
	LU_API void						SetPlayerBoundaries			( Player player, Vector3* lowerBounds, Vector3* upperBounds );
	LU_API void						SetPlayerVehicleEnterDoor	( Player player, int door );
	LU_API void						SetPlayerWeapon				( Player player, int weapon, int ammo );
	LU_API void						GetPlayerSkin				( Player player, int* weapon );
	LU_API void						SetPlayerSkin				( Player player, int weapon );
	LU_API void						ForcePlayerSpawn			( Player player );
	LU_API void						ForcePlayerSpawnWithClass	( Player player, SpawnClass classType );
	LU_API void						GetPlayerSpawned			( Player player, int* isSpawned );
	LU_API void						GetPlayerTeam				( Player player, int* teamRet );
	LU_API void						SetPlayerTeam				( Player player, int teamRet );
	LU_API void						GetPlayerTrain				( Player player, int* train );
	LU_API void						GetPlayerVehicle			( Player player, Vehicle* vehicleRet );
	LU_API void						SetPlayerVehicle			( Player player, Vehicle vehicle );
	LU_API void						GetPlayerVehicleSeat		( Player player, int* vehicleSeat );
	LU_API void						GetPlayerVelocity			( Player player, Vector3* velocityRet );
	LU_API void						GetPlayerVirtualWorld		( Player player, int* worldRet );
	LU_API void						SetPlayerVirtualWorld		( Player player, int world );
	LU_API void						GetPlayerWantedLevel		( Player player, int* wantedLevel );
	LU_API void						SetPlayerWantedLevel		( Player player, int wantedLevel );
	LU_API void						GetPlayerWeapon				( Player player, int* weaponRet );
	LU_API void						GetPlayerWeaponAmmo			( Player player, int* weaponAmmo );
	LU_API void						GetPlayerWeaponState		( Player player, int* weaponState );

	LU_API void						LoadModule					( const char* moduleName );
	LU_API void						LoadScript					( const char* scriptName );
	LU_API void						UnloadScript				( const char* scriptName );

	LU_API void						FindHashTable				( const char* name, HashTable* hashRet );
	LU_API void						CreateHashTable				( const char* name, HashTable* hashRet );
	LU_API void						HashAdd						( HashTable table, char* name, char* value );
	LU_API void						HashClose					( HashTable table );
	LU_API void						HashDec						( HashTable table, char* data, int value );
	LU_API void						HashDel						( HashTable table, char* entry );
	LU_API void						HashGet						( HashTable table, char* data, char* valueRet );
	LU_API void						HashInc						( HashTable table, char* data, int value );
	LU_API void						HashLoad					( HashTable table, char* location );
	LU_API void						HashSave					( HashTable table, char* location );

	LU_API void						GetGamemodeName				( char* nameRet );
	LU_API void						GetMapName					( char* mapRet );
	LU_API void						GetMaxPlayers				( int* ret );
	LU_API void						GetMTUSize					( int* ret );
	LU_API void						GetPassword					( char* ret );
	LU_API void						GetPlayers					( int* ret );
	LU_API void						GetPort						( int* port );
	LU_API void						GetServerName				( char* ret );
	LU_API void						SetGamemodeName				( char* name );
	LU_API void						SetMapName					( char* name );
	LU_API void						SetMaxPlayers				( int limit );
	LU_API void						SetPassword					( char* password );
	LU_API void						SetPort						( int port );
	LU_API void						SetServerName				( char* name );
	LU_API void						SetServerRule				( char* ruleName, char* ruleValue );

	LU_API void						FindSound					( char* name, Sound* soundRet );
	LU_API void						FindSoundByID				( int id, Sound* soundRet );
	LU_API void						PlayFrontEndSound			( Player player, int sound );
	LU_API void						PlayFrontEndTrack			( Player player, int sound );
	LU_API void						PlaySuspectLastSeen			( Player player, Vector3* pos );
	LU_API void						CloseSound					( Sound sound, Player player );
	LU_API void						OpenSound					( Sound sound, Player player );
	LU_API void						PlaySound					( Sound sound, Player player );
	LU_API void						PauseSound					( Sound sound, Player player );
	LU_API void						StopSound					( Sound sound, Player player );

	LU_API void						AddSpawnClass				(
																	int skin,
																	int team,
																	Vector3* pos,
																	float angle,
																	int color,
																	int spawnScreen,
																	SpawnClass* ret
																);

	LU_API void						FindSpawnClass				( int id, SpawnClass* ret );
	LU_API void						GetSpawnClassCount			( int* ret );
	LU_API void						SetSpawnClassAngle			( SpawnClass spawn, float angle );
	LU_API void						GetSpawnClassAngle			( SpawnClass spawn, float* angle );
	LU_API void						GetSpawnClassColour			( SpawnClass spawn, int* color );
	LU_API void						SetSpawnClassColour			( SpawnClass spawn, int color );
	LU_API void						GetSpawnClassWeapon			( SpawnClass spawn, int slot, int* weapon );
	LU_API void						GetSpawnClassWeaponAmmo		( SpawnClass spawn, int slot, int* ammo );
	LU_API void						GetSpawnClassID				( SpawnClass spawn, int* idRet );
	LU_API void						GetSpawnClassPos			( SpawnClass spawn, Vector3* posRet );
	LU_API void						SetSpawnClassPos			( SpawnClass spawn, Vector3* pos );
	LU_API void						RemoveSpawnClassWeapon		( SpawnClass spawn, int slot );
	LU_API void						AddSpawnClassWeapon			( SpawnClass spawn, int weapon, int ammo, int slot );
	LU_API void						GetSpawnClassSkin			( SpawnClass spawn, int* skin );
	LU_API void						SetSpawnClassSkin			( SpawnClass spawn, int skin );
	LU_API void						GetSpawnClassSpawnScreen	( SpawnClass spawn, int* screen );
	LU_API void						SetSpawnClassSpawnScreen	( SpawnClass spawn, int screen );
	LU_API void						SetSpawnClassTeam			( SpawnClass spawn, int team );
	LU_API void						GetSpawnClassTeam			( SpawnClass spawn, int* team );

	LU_API void						CreateClientSphere			( Vector3* pos, float radius, Player plr, Colour col, Sphere* sphereRet );
	LU_API void						CreateSphere				( Vector3* pos, float radius, Colour col, Sphere* sphereRet );
	LU_API void						FindSphere					( int id, Sphere* sphereRet );
	LU_API void						FindClientSphere			( int id, Player plr, Sphere* sphereRet );
	LU_API void						GetSphereCount				( int* count );
	LU_API void						GetClientSphereCount		( Player plr, int* count );
	LU_API void						GetSphereColour				( Sphere sphere, Colour* colour );
	LU_API void						SetSphereColour				( Sphere sphere, Colour colour );
	LU_API void						GetSphereID					( Sphere sphere, int* id );
	LU_API void						GetSpherePos				( Sphere sphere, Vector3* pos );
	LU_API void						SetSpherePos				( Sphere sphere, Vector3* pos );
	LU_API void						GetSphereRadius				( Sphere sphere, float* radius );
	LU_API void						SetSphereRadius				( Sphere sphere, float radius );
	LU_API void						RemoveSphere				( Sphere sphere );
	LU_API void						GetSphereType				( Sphere sphere, int* type );
	LU_API void						SetSphereType				( Sphere sphere, int type );
	LU_API void						SetSphereVirtualWorld		( Sphere sphere, int vWorld );
	LU_API void						GetSphereVirtualWorld		( Sphere sphere, int* ret );

	LU_API void						GetDistance					( Vector3* v1, Vector3* v2, float* ret );
	LU_API void						GetDistance2D				( Vector2* v1, Vector2* v2, float* ret);
	LU_API void						GetTickCount				( int* ret );
	LU_API void						IsNum						( char* string, int* ret );

	LU_API void						GetWeaponIDFromName			( char* weapon, int* ret );
	LU_API void						GetWeaponName				( int weapon, char* ret );

	LU_API void						CreateVehicle				( int model, Vector3* pos, float angle, int col1, int col2, Vehicle* ret );
	LU_API void						FindVehicle					( int id, Vehicle* ret );
	LU_API void						GetClosestVehicle			( Player plr, Vehicle* ret );
	LU_API void						GetVehicleCount				( int* ret );
	LU_API void						GetVehicleIDFromName		( char* name, int* ret );
	LU_API void						GetVehicleNameFromModel		( int model, char* ret );
	LU_API void						GetVehicleNameFromVehicle	( Vehicle vehicle, char* ret );
	LU_API void						GetVehicleAlpha				( Vehicle vehicle, int* ret );
	LU_API void						SetVehicleAlpha				( Vehicle vehicle, int alpha );
	LU_API void						GetVehicleAngle				( Vehicle vehicle, float* ret );
	LU_API void						SetVehicleAngle				( Vehicle vehicle, float angle );
	LU_API void						GetVehicleColour1			( Vehicle vehicle, int* ret );
	LU_API void						GetVehicleColour2			( Vehicle vehicle, int* ret );
	LU_API void						SetVehicleColour1			( Vehicle vehicle, int col );
	LU_API void						SetVehicleColour2			( Vehicle vehicle, int col );
	LU_API void						GetVehicleDriver			( Vehicle vehicle, Player* ret );
	LU_API void						GetVehicleEngineDamage		( Vehicle vehicle, int* ret );
	LU_API void						SetVehicleEngineDamage		( Vehicle vehicle, int damage );
	LU_API void						ExplodeVehicle				( Vehicle vehicle, Player responsible );
	LU_API void						FixVehicle					( Vehicle vehicle );
	LU_API void						GetVehicleAddon				( Vehicle vehicle, int* addonRet );
	LU_API void						GetVehiclePassenger			( Vehicle vehicle, int seat, Player* ret );
	LU_API void						GetVehicleWheelStatus		( Vehicle vehicle, int wheel, int* statusRet );
	LU_API void						GetVehicleHealth			( Vehicle vehicle, float* healthRet );
	LU_API void						GetVehicleID				( Vehicle vehicle, int* vehID );
	LU_API void						GetVehicleIdleRespawnTime	( Vehicle vehicle, int* respawnSecs );
	LU_API void						SetVehicleIdleRespawnTime	( Vehicle vehicle, int respawnSecs );
	LU_API void						GetVehicleIdleTime			( Vehicle vehicle, int* idleMs );
	LU_API void						GetVehicleLightState		( Vehicle vehicle, int* state );
	LU_API void						SetVehicleLightState		( Vehicle vehicle, int state );
	LU_API void						GetVehicleLocked			( Vehicle vehicle, int* isLocked );
	LU_API void						SetVehicleLocked			( Vehicle vehicle, int isLocked );
	LU_API void						GetVehicleModel				( Vehicle vehicle, int* modelRet );
	LU_API void						GetVehicleOneTime			( Vehicle vehicle, int* isOneTime );
	LU_API void						SetVehicleOneTime			( Vehicle vehicle, int isOneTime );
	LU_API void						GetVehiclePassengerCount	( Vehicle vehicle, int* ret );
	LU_API void						GetVehiclePos				( Vehicle vehicle, Vector3* pos );
	LU_API void						SetVehiclePos				( Vehicle vehicle, Vector3* pos );
	LU_API void						RemoveVehicle				( Vehicle vehicle );
	LU_API void						RespawnVehicle				( Vehicle vehicle );
	LU_API void						GetVehicleRespawnTime		( Vehicle vehicle, int* ret );
	LU_API void						SetVehicleRespawnTime		( Vehicle vehicle, int seconds);
	LU_API void						GetVehicleRGBColour1		( Vehicle vehicle, Colour* ret );
	LU_API void						SetVehicleRGBColour1		( Vehicle vehicle, Colour col );
	LU_API void						GetVehicleRGBColour2		( Vehicle vehicle, Colour* ret );
	LU_API void						SetVehicleRGBColour2		( Vehicle vehicle, Colour col );
	LU_API void						SetVehicleWheelStatus		( Vehicle vehicle, int wheel, int status );
	LU_API void						GetVehicleSpawnAngle		( Vehicle vehicle, float* ret );
	LU_API void						SetVehicleSpawnAngle		( Vehicle vehicle, float angle );
	LU_API void						GetVehicleSpawnPos			( Vehicle vehicle, Vector3* ret );
	LU_API void						SetVehicleSpawnPos			( Vehicle vehicle, Vector3* pos );
	LU_API void						SetVehicleAddon				( Vehicle vehicle, int addon );
	LU_API void						SetVehicleEngineState		( Vehicle vehicle, int status );
	LU_API void						SetVehicleRadioStation		( Vehicle vehicle, int channel );
	LU_API void						GetVehicleSiren				( Vehicle vehicle, int* ret );
	LU_API void						SetVehicleSiren				( Vehicle vehicle, int status );
	LU_API void						GetVehicleSirenLight		( Vehicle vehicle, int* ret );
	LU_API void						SetVehicleSirenLight		( Vehicle vehicle, int status );
	LU_API void						GetVehicleTaxiLight			( Vehicle vehicle, int* ret );
	LU_API void						SetVehicleTaxiLight			( Vehicle vehicle, int status );
	LU_API void						GetVehicleWrecked			( Vehicle vehicle, int* ret );

#ifdef __cplusplus
}
#endif

#endif
